+Fri May 15 09:44:10 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.h (struct _GtkWidgetClass): corrected returntype of
+ the visibility_notify_event method and changed method order.
+
Thu May 14 03:04:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtk.defs: added GtkButtonBoxStyle and GtkOrientation definitions
+Fri May 15 09:44:10 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.h (struct _GtkWidgetClass): corrected returntype of
+ the visibility_notify_event method and changed method order.
+
Thu May 14 03:04:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtk.defs: added GtkButtonBoxStyle and GtkOrientation definitions
+Fri May 15 09:44:10 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.h (struct _GtkWidgetClass): corrected returntype of
+ the visibility_notify_event method and changed method order.
+
Thu May 14 03:04:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtk.defs: added GtkButtonBoxStyle and GtkOrientation definitions
+Fri May 15 09:44:10 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.h (struct _GtkWidgetClass): corrected returntype of
+ the visibility_notify_event method and changed method order.
+
Thu May 14 03:04:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtk.defs: added GtkButtonBoxStyle and GtkOrientation definitions
+Fri May 15 09:44:10 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.h (struct _GtkWidgetClass): corrected returntype of
+ the visibility_notify_event method and changed method order.
+
Thu May 14 03:04:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtk.defs: added GtkButtonBoxStyle and GtkOrientation definitions
+Fri May 15 09:44:10 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.h (struct _GtkWidgetClass): corrected returntype of
+ the visibility_notify_event method and changed method order.
+
Thu May 14 03:04:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtk.defs: added GtkButtonBoxStyle and GtkOrientation definitions
+Fri May 15 09:44:10 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.h (struct _GtkWidgetClass): corrected returntype of
+ the visibility_notify_event method and changed method order.
+
Thu May 14 03:04:43 1998 Tim Janik <timj@gtk.org>
* gtk/gtk.defs: added GtkButtonBoxStyle and GtkOrientation definitions
+Fri May 15 00:56:59 1998 Tim Janik <timj@gtk.org>
+
+ * glib.h: further support for gcc function attributes: G_GNUC_FORMAT,
+ G_GNUC_NORETURN and G_GNUC_CONST.
+
+ * gscanner.c (g_scanner_stat_mode): changed stat() to lstat().
+ (g_scanner_msg_handler): "\n" at end of line!
+ (g_scanner_foreach_symbol): new function to iterate over the symbol
+ table (GScanner does value-wrapping).
+
Thu May 14 04:14:12 1998 Tim Janik <timj@gtk.org>
* glib.h: typedef gint gboolean;
# endif
#endif
-/* Provide macros to feature the GCC printf format function attribute.
+/* Provide macros to feature GCC function attributes.
*/
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
#define G_GNUC_PRINTF( format_idx, arg_idx ) \
__attribute__((format (printf, format_idx, arg_idx)))
#define G_GNUC_SCANF( format_idx, arg_idx ) \
__attribute__((format (scanf, format_idx, arg_idx)))
+#define G_GNUC_FORMAT( arg_idx ) \
+ __attribute__((format_arg (arg_idx)))
+#define G_GNUC_NORETURN \
+ __attribute__((noreturn))
+#define G_GNUC_CONST \
+ __attribute__((const))
#else /* !__GNUC__ */
#define G_GNUC_PRINTF( format_idx, arg_idx )
#define G_GNUC_SCANF( format_idx, arg_idx )
+#define G_GNUC_FORMAT( arg_idx )
+#define G_GNUC_NORETURN
+#define G_GNUC_CONST
#endif /* !__GNUC__ */
/* Wrap the __PRETTY_FUNCTION__ and __FUNCTION__ variables with macros,
/* Output
*/
-void g_error (const gchar *format, ...) G_GNUC_PRINTF (1, 2);
+void g_error (const gchar *format, ...) G_GNUC_PRINTF (1, 2) G_GNUC_NORETURN;
void g_warning (const gchar *format, ...) G_GNUC_PRINTF (1, 2);
void g_message (const gchar *format, ...) G_GNUC_PRINTF (1, 2);
void g_print (const gchar *format, ...) G_GNUC_PRINTF (1, 2);
gpointer value);
gpointer g_scanner_lookup_symbol (GScanner *scanner,
const gchar *symbol);
+void g_scanner_foreach_symbol (GScanner *scanner,
+ GHFunc func,
+ gpointer func_data);
void g_scanner_remove_symbol (GScanner *scanner,
const gchar *symbol);
void g_scanner_unexp_token (GScanner *scanner,
fprintf (stdout, "%s:%d: ", scanner->input_name, scanner->line);
if (is_error)
fprintf (stdout, "error: ");
- fprintf (stdout, "%s", message);
+ fprintf (stdout, "%s\n", message);
}
void
return NULL;
}
+static void
+g_scanner_foreach_internal (gpointer key,
+ gpointer value,
+ gpointer user_data)
+{
+ register GScannerHashVal *hash_val;
+ register GHFunc func;
+ register gpointer func_data;
+ register gpointer *d;
+
+ d = user_data;
+ func = d[0];
+ func_data = d[1];
+ hash_val = value;
+
+ func (key, hash_val->value, func_data);
+}
+
+void
+g_scanner_foreach_symbol (GScanner *scanner,
+ GHFunc func,
+ gpointer func_data)
+{
+ gpointer d[2];
+
+ g_return_if_fail (scanner != NULL);
+
+ d[0] = func;
+ d[1] = func_data;
+
+ g_hash_table_foreach (scanner->symbol_table, g_scanner_foreach_internal, d);
+}
+
void
g_scanner_remove_symbol (GScanner *scanner,
const gchar *symbol)
stat_buf = g_new0 (struct stat, 1);
- stat (filename, stat_buf);
+ lstat (filename, stat_buf);
st_mode = stat_buf->st_mode;
gtk_widget_marshal_signal_4,
GTK_TYPE_BOOL, 1,
GTK_TYPE_GDK_EVENT);
- widget_signals[OTHER_EVENT] =
- gtk_signal_new ("other_event",
+ widget_signals[VISIBILITY_NOTIFY_EVENT] =
+ gtk_signal_new ("visibility_notify_event",
GTK_RUN_LAST,
object_class->type,
- GTK_SIGNAL_OFFSET (GtkWidgetClass, other_event),
+ GTK_SIGNAL_OFFSET (GtkWidgetClass, visibility_notify_event),
gtk_widget_marshal_signal_4,
GTK_TYPE_BOOL, 1,
GTK_TYPE_GDK_EVENT);
gtk_widget_marshal_signal_4,
GTK_TYPE_BOOL, 1,
GTK_TYPE_GDK_EVENT);
- widget_signals[VISIBILITY_NOTIFY_EVENT] =
- gtk_signal_new ("visibility_notify_event",
+ widget_signals[OTHER_EVENT] =
+ gtk_signal_new ("other_event",
GTK_RUN_LAST,
object_class->type,
- GTK_SIGNAL_OFFSET (GtkWidgetClass, visibility_notify_event),
- gtk_widget_marshal_signal_1,
- GTK_TYPE_NONE, 1,
+ GTK_SIGNAL_OFFSET (GtkWidgetClass, other_event),
+ gtk_widget_marshal_signal_4,
+ GTK_TYPE_BOOL, 1,
GTK_TYPE_GDK_EVENT);
gtk_object_class_add_signals (object_class, widget_signals, LAST_SIGNAL);
GdkEventDropEnter *event);
gint (* drop_leave_event) (GtkWidget *widget,
GdkEventDropLeave *event);
- gint (* drop_data_available_event) (GtkWidget *widget,
- GdkEventDropDataAvailable *event);
+ gint (* drop_data_available_event)(GtkWidget *widget,
+ GdkEventDropDataAvailable *event);
+ gint (* visibility_notify_event) (GtkWidget *widget,
+ GdkEventVisibility *event);
+ gint (* client_event) (GtkWidget *widget,
+ GdkEventClient *event);
+ gint (* no_expose_event) (GtkWidget *widget,
+ GdkEventAny *event);
gint (* other_event) (GtkWidget *widget,
GdkEventOther *event);
/* selection */
void (* selection_received) (GtkWidget *widget,
GtkSelectionData *selection_data);
-
- gint (* client_event) (GtkWidget *widget,
- GdkEventClient *event);
- gint (* no_expose_event) (GtkWidget *widget,
- GdkEventAny *event);
- void (* visibility_notify_event) (GtkWidget *widget,
- GdkEventVisibility *event);
};
struct _GtkWidgetAuxInfo